The ever-increasing use of modern computer systems has created an increased demand to store and utilize large masses of data economically. Mass data storage is economically achieved by using an array of relatively inexpensive or independent disk drives. Such “RAID” (redundant array of independent disks) systems also offer considerable benefits in data reliability because of their well-known ability to reconstruct lost or corrupted data.
The typical RAID mass storage system requires a computer to control the array of disk drives as well as to control the transfer of data when performing read and write operations on the disk drives. Manufacturers of general purpose personal computers have adapted general-purpose personal computers to perform the functions of controlling the array of disk drives and performing the data transfer transactions. When adapted in this manner, the general purpose personal computer is known as a server. Mass storage functionality is achieved by executing an operational program known as a mass storage operating system (MSOS). The mass storage operating system is loaded onto the general purpose personal computer to cause it, as a server, to perform specific mass storage functions.
In general, mass storage specialty organizations would prefer to use general purpose personal computer servers as the hardware component or platform for their customer's specialized mass storage systems. A general purpose personal computer server can be obtained for a relatively lower purchase cost, compared to the cost of assembling hardware components of a specialized computer system to function specifically as a server. Economies of scale are available when producing general purpose personal computers on a large-scale basis, and using a relatively low-cost, general-purpose personal computer as a server takes advantage of this cost benefit.
One disadvantage of using a general-purpose personal computer as a server is that its general-purpose legacy does not provide certain reliability features that are desirable for high-performance mass storage systems. To store data reliably, the data should be saved completely on the RAID disk drives before the write transaction is acknowledged. If the personal computer server ceases functioning (“crashes”) or loses power before the data is saved completely to the disk drives, the data is lost. In general, the redundancy and reliability of data storage on a RAID storage system are available only after the data has been completely stored on the disk drives. Thereafter, failures or malfunctions of the disk drives will usually allow the data to be reconstructed. General-purpose personal computer servers usually lack any capability to avoid data loss if a crash or power loss occurs before the data is written to the disk drives.
Disk drives require a relatively long amount of time (“high latency”) to perform a read or write transaction, because mechanical components must be moved to perform the operation. Because of the relatively high latency, the speed and performance of the computer system will be adversely affected if the storage transactions are performed directly on the disk drives. The higher latency of the disk drives limits computer system and mass storage performance, because considerable time is lost while waiting for the disk drives to perform the data transactions.
To avoid the latency problem of disk drives, it is typical to use an intermediate, high performance (“low latency”) solid-state memory upon which to perform the read and write data transactions. The data is transferred rapidly to the low latency intermediate memory, and then, in a separate transaction which does not adversely affect the processing performance, data is transferred from the intermediate memory to the disk drives simultaneously while other processing occurs. In this manner, the normal processing performance of the computer system is not diminished by mass storage transactions. However, should a crash or power loss occur while the data is present in the intermediate memory and before the data has been completely transferred to the disk drives, that data will be lost and reconstruction of the data becomes impossible.
Intermediate solid-state memories have been made nonvolatile to prevent such data losses. Usually battery backup power is supplied to achieve such nonvolatility. Although certain types of solid-state memories have inherent nonvolatile characteristics, the semiconductor materials used in those types of memories to obtain inherent nonvolatile characteristics require greater time to write the data. Consequently, inherently nonvolatile memories generally have a relatively high, and therefore unacceptable, latency when performing read and write transactions. It is for this reason that inherent nonvolatile solid-state memories are not usually considered acceptable as intermediate nonvolatile memories for a mass storage server. Instead, low latency dynamic random access memories (DRAMs) with a battery backup are typically used as nonvolatile intermediate memories in a mass storage server.
A mass storage nonvolatile memory is not typically included as a part of the typical hardware in a general-purpose personal computer. A battery for supplying backup power to make a conventional DRAM memory nonvolatile is not included as part of the typical hardware in a general-purpose personal computer. A general-purpose personal computer must therefore be modified to accommodate the intermediate memory and the battery backup power to function as a server. The battery should have a sufficient size and capacity to power the intermediate DRAM memory for a number of days in order to sustain the data written to it. Furthermore, a charger for the battery must also be included to keep the battery at its maximum capacity when the battery is not in use. It is not trivial to add a battery backup and charger to obtain nonvolatile, low latency intermediate DRAM memory capabilities in a general-purpose personal computer server because of the extent of modifications required to the internal computer structure. The typical mass data storage user is incapable of or unwilling to perform such modifications.
Even if DRAM and battery backup power for it are incorporated in a general-purpose personal computer, there is typically a lack or deficiency in the functionality of placing the DRAM into a data-preserving state. A number of factors may create error or risk conditions where data will be lost unless the DRAM is placed into a data-preserving state. Some of those conditions include a power interruption or a power reduction, or a hardware or a software malfunction or crash of the central processing unit (CPU) of the personal computer. Even though some attempts are made to place the DRAM into the data-preserving state, many of these potential data-loss conditions may not be adequately addressed, if at all, when attempting to utilize the DRAM to preserve data under potential data-loss conditions.
Another disadvantage of using a general-purpose personal computer as a mass storage server is the potential difficulty of loading or “booting” the mass storage operating system. For redundancy purposes, the mass storage operating system is typically recorded on one or more disk drives of the RAID system. If one of the disk drives fails, the operating system can still be loaded by reading the operating system from another functional disk drive.
Booting or loading an operating system is initiated by the basic input/output system (BIOS) of the core integrated circuits or “core chipset” of the general-purpose computer. The BIOS searches for a single disk drive to obtain programs to boot. Because the mass storage operating system is written on multiple disk drives which are not directly connected to the core chipset, the typical BIOS must be modified to load the mass storage operating system from nonstandard and multiple locations on multiple disk drives other than the usual, single, bootable, local disk drive. This modification is referred to as “chain booting.” Modifying the normal BIOS to perform chain booting is possible, but the disadvantage is that the BIOS must be modified into a nonstandard form to incorporate chain booting. Such modifications will usually limit the ability of the general-purpose personal computer server to evolve with future developments of improved software and operating systems. Updating the BIOS to accommodate future evolutions is beyond the capability of the typical user. Transferring the mass storage server to a competent professional for upgrades and revisions is usually impossible because the server is in continual use to service the needs of the mass data storage user.
Another disadvantage of using a general-purpose personal computer as a mass storage server is that it offers an opportunity for the user to interfere with its proper operation. Because of its general-purpose personal computer legacy, the server has the capability to connect monitors, keyboards and other input/output (“I/O”) devices. These I/O devices may permit the user to interact with the internal functionality of the server, and such interaction may unintentionally modify or otherwise adversely influence its operation.
Attempts have been made to address some of the disadvantages of using a general-purpose personal computer as a server. For example, electronic circuit cards containing DRAM memory have been added to the expansion bus slots or connectors for the purpose of obtaining low latency intermediate memory for use with the higher latency RAID disk drives. Batteries and chargers have been added inside of the computer housing to make the intermediate DRAM memory nonvolatile. The necessity to modify the internal structure of the personal computer to accommodate the battery and the charger have complicated the use of such cards, as noted above. The necessity to modify the standard BIOS to accommodate chain booting has proved to substantially diminish the ability of the server to evolve with future improvements, as discussed above. Other disadvantages are also known with respect to using general-purpose personal computer servers for high-performance mass data storage applications.